Skip to content

Release v3.4.0 - #434

Merged
jeffkala merged 7 commits into
mainfrom
release/3.4.0
Oct 5, 2026
Merged

jeffkala merged 7 commits into
mainfrom
release/3.4.0

Conversation

@github-actions

@github-actions github-actions Bot commented Oct 5, 2026

Copy link
Copy Markdown

v3.4.0 (2026-10-05)

Added

  • Added install_os method for EOSSSHDevice class.
  • Added maintenance_mode method for EOSSSHDevice class.

Fixed

  • #423 - Fixed EOSDevice.close() leaking the Netmiko SSH session opened by the file-transfer methods.

Housekeeping

  • Rebaked from the cookie main.

Contributors

New Contributors

Full Changelog: v3.3.0...v3.4.0

cmsirbu and others added 6 commits October 1, 2026 18:05
… copy (#424)

* Fix EOSDevice.close() leaking the Netmiko SSH session

close() was a no-op, but open() creates a real SSH session for the file-transfer paths (file_copy, check_file_exists, get_remote_checksum, remote_file_copy). A caller holding many device objects accumulated one open socket per device.

Disconnect when _connected is set, matching IOSDevice.close(). The guard also keeps close() safe on a device that only ever spoke eAPI, since native_ssh is assigned inside open().

Removes EOSSSHDevice.close(), now an exact duplicate of the parent: native_ssh on that class is a property returning native, so both bodies make the same call.

* Add changelog fragment for #423
…r Tool (#425)

* Cookie updated targeting develop by NetworkToCode Cookie Drift Manager Tool

Template:

```
{
    "template": "https://github.com/networktocode-llc/cookiecutter-ntc.git",
    "dir": "python",
    "ref": "main",
    "path": "/__w/cookiecutter-nautobot-app-drift-manager/cookiecutter-nautobot-app-drift-manager/cookiecutter-ntc/python"
}
```

Cookie:

```
{
    "remote": "https://github.com/networktocode/pyntc.git",
    "path": "/tmp/tmpv706po_2/pyntc",
    "repository_path": "/tmp/tmpv706po_2/pyntc",
    "dir": "",
    "branch_prefix": "drift-manager/develop",
    "context": {
        "codeowner_github_usernames": "@jeffkala @pszulczewski @pke11y",
        "full_name": "Network to Code, LLC",
        "email": "info@networktocode.com",
        "github_org": "networktocode",
        "description": "Python library focused on tasks related to device level and OS management.",
        "project_name": "pyntc",
        "project_slug": "pyntc",
        "repo_url": "https://github.com/networktocode/pyntc",
        "base_url": "pyntc",
        "project_python_name": "pyntc",
        "project_python_base_version": "3.10",
        "project_with_config_settings": "no",
        "generate_docs": "no",
        "version": "2.0.2",
        "original_publish_year": "2015",
        "_template": "/__w/cookiecutter-nautobot-app-drift-manager/cookiecutter-nautobot-app-drift-manager/cookiecutter-ntc/python",
        "_output_dir": "/tmp/tmpv706po_2",
        "_repo_dir": "/__w/cookiecutter-nautobot-app-drift-manager/cookiecutter-nautobot-app-drift-manager/cookiecutter-ntc/python",
        "_checkout": null
    },
    "drift_managed_branch": "develop",
    "remote_name": "origin",
    "pull_request_strategy": "PullRequestStrategy.UPDATE_OR_CREATE",
    "post_actions": [],
    "baked_commit_ref": "a5add2662f26a3b877635bbf1fd787682414d2bf",
    "draft": false
}
```

CLI Arguments:

```
{
    "cookie_dir": "",
    "input": false,
    "json_filename": "",
    "output_dir": "",
    "push": true,
    "template": "./cookiecutter-ntc",
    "template_dir": "python",
    "template_ref": "main",
    "pull_request": "update-or-create",
    "post_action": [],
    "disable_post_actions": true,
    "draft": null,
    "drift_managed_branch": "develop"
}
```

* Cookie updated targeting develop by NetworkToCode Cookie Drift Manager Tool

Template:

```
{
    "template": "https://github.com/networktocode-llc/cookiecutter-ntc.git",
    "dir": "python",
    "ref": "main",
    "path": "/__w/cookiecutter-nautobot-app-drift-manager/cookiecutter-nautobot-app-drift-manager/cookiecutter-ntc/python"
}
```

Cookie:

```
{
    "remote": "https://github.com/networktocode/pyntc.git",
    "path": "/tmp/tmpjh04xc0r/pyntc",
    "repository_path": "/tmp/tmpjh04xc0r/pyntc",
    "dir": "",
    "branch_prefix": "drift-manager/develop",
    "context": {
        "codeowner_github_usernames": "@jeffkala @pszulczewski @pke11y",
        "full_name": "Network to Code, LLC",
        "email": "info@networktocode.com",
        "github_org": "networktocode",
        "description": "Python library focused on tasks related to device level and OS management.",
        "project_name": "pyntc",
        "project_slug": "pyntc",
        "repo_url": "https://github.com/networktocode/pyntc",
        "base_url": "pyntc",
        "project_python_name": "pyntc",
        "project_python_base_version": "3.10",
        "project_with_config_settings": "no",
        "generate_docs": "no",
        "version": "2.0.2",
        "original_publish_year": "2015",
        "_template": "/__w/cookiecutter-nautobot-app-drift-manager/cookiecutter-nautobot-app-drift-manager/cookiecutter-ntc/python",
        "_output_dir": "/tmp/tmpjh04xc0r",
        "_repo_dir": "/__w/cookiecutter-nautobot-app-drift-manager/cookiecutter-nautobot-app-drift-manager/cookiecutter-ntc/python",
        "_checkout": null
    },
    "drift_managed_branch": "develop",
    "remote_name": "origin",
    "pull_request_strategy": "PullRequestStrategy.UPDATE_OR_CREATE",
    "post_actions": [],
    "baked_commit_ref": "a5add2662f26a3b877635bbf1fd787682414d2bf",
    "draft": false
}
```

CLI Arguments:

```
{
    "cookie_dir": "",
    "input": false,
    "json_filename": "",
    "output_dir": "",
    "push": true,
    "template": "./cookiecutter-ntc",
    "template_dir": "python",
    "template_ref": "main",
    "pull_request": "update-or-create",
    "post_action": [],
    "disable_post_actions": true,
    "draft": null,
    "drift_managed_branch": "develop"
}
```

* Cookie updated targeting develop by NetworkToCode Cookie Drift Manager Tool

Template:

```
{
    "template": "https://github.com/networktocode-llc/cookiecutter-ntc.git",
    "dir": "python",
    "ref": "main",
    "path": "/__w/cookiecutter-nautobot-app-drift-manager/cookiecutter-nautobot-app-drift-manager/cookiecutter-ntc/python"
}
```

Cookie:

```
{
    "remote": "https://github.com/networktocode/pyntc.git",
    "path": "/tmp/tmpnap6giph/pyntc",
    "repository_path": "/tmp/tmpnap6giph/pyntc",
    "dir": "",
    "branch_prefix": "drift-manager/develop",
    "context": {
        "codeowner_github_usernames": "@jeffkala @pszulczewski @pke11y",
        "full_name": "Network to Code, LLC",
        "email": "info@networktocode.com",
        "github_org": "networktocode",
        "description": "Python library focused on tasks related to device level and OS management.",
        "project_name": "pyntc",
        "project_slug": "pyntc",
        "repo_url": "https://github.com/networktocode/pyntc",
        "base_url": "pyntc",
        "project_python_name": "pyntc",
        "project_python_base_version": "3.10",
        "project_with_config_settings": "no",
        "generate_docs": "no",
        "version": "2.0.2",
        "original_publish_year": "2015",
        "_template": "/__w/cookiecutter-nautobot-app-drift-manager/cookiecutter-nautobot-app-drift-manager/cookiecutter-ntc/python",
        "_output_dir": "/tmp/tmpnap6giph",
        "_repo_dir": "/__w/cookiecutter-nautobot-app-drift-manager/cookiecutter-nautobot-app-drift-manager/cookiecutter-ntc/python",
        "_checkout": null
    },
    "drift_managed_branch": "develop",
    "remote_name": "origin",
    "pull_request_strategy": "PullRequestStrategy.UPDATE_OR_CREATE",
    "post_actions": [],
    "baked_commit_ref": "a5add2662f26a3b877635bbf1fd787682414d2bf",
    "draft": false
}
```

CLI Arguments:

```
{
    "cookie_dir": "",
    "input": false,
    "json_filename": "",
    "output_dir": "",
    "push": true,
    "template": "./cookiecutter-ntc",
    "template_dir": "python",
    "template_ref": "main",
    "pull_request": "update-or-create",
    "post_action": [],
    "disable_post_actions": true,
    "draft": null,
    "drift_managed_branch": "develop"
}
```

* Cookie updated targeting develop by NetworkToCode Cookie Drift Manager Tool

Template:

```
{
    "template": "https://github.com/networktocode-llc/cookiecutter-ntc.git",
    "dir": "python",
    "ref": "main",
    "path": "/__w/cookiecutter-nautobot-app-drift-manager/cookiecutter-nautobot-app-drift-manager/cookiecutter-ntc/python"
}
```

Cookie:

```
{
    "remote": "https://github.com/networktocode/pyntc.git",
    "path": "/tmp/tmps0ci03id/pyntc",
    "repository_path": "/tmp/tmps0ci03id/pyntc",
    "dir": "",
    "branch_prefix": "drift-manager/develop",
    "context": {
        "codeowner_github_usernames": "@jeffkala @pszulczewski @pke11y",
        "full_name": "Network to Code, LLC",
        "email": "info@networktocode.com",
        "github_org": "networktocode",
        "description": "Python library focused on tasks related to device level and OS management.",
        "project_name": "pyntc",
        "project_slug": "pyntc",
        "repo_url": "https://github.com/networktocode/pyntc",
        "base_url": "pyntc",
        "project_python_name": "pyntc",
        "project_python_base_version": "3.10",
        "project_with_config_settings": "no",
        "generate_docs": "no",
        "version": "2.0.2",
        "original_publish_year": "2015",
        "_template": "/__w/cookiecutter-nautobot-app-drift-manager/cookiecutter-nautobot-app-drift-manager/cookiecutter-ntc/python",
        "_output_dir": "/tmp/tmps0ci03id",
        "_repo_dir": "/__w/cookiecutter-nautobot-app-drift-manager/cookiecutter-nautobot-app-drift-manager/cookiecutter-ntc/python",
        "_checkout": null
    },
    "drift_managed_branch": "develop",
    "remote_name": "origin",
    "pull_request_strategy": "PullRequestStrategy.UPDATE_OR_CREATE",
    "post_actions": [],
    "baked_commit_ref": "a5add2662f26a3b877635bbf1fd787682414d2bf",
    "draft": false
}
```

CLI Arguments:

```
{
    "cookie_dir": "",
    "input": false,
    "json_filename": "",
    "output_dir": "",
    "push": true,
    "template": "./cookiecutter-ntc",
    "template_dir": "python",
    "template_ref": "main",
    "pull_request": "update-or-create",
    "post_action": [],
    "disable_post_actions": true,
    "draft": null,
    "drift_managed_branch": "develop"
}
```

* fix merge conflicts

* fix merge conflicts

* fix prepare release

* fix prepare release

* fix prepare release

* fix conflicts

* remove doctest since it wasn't in this repo before drift manager

---------

Co-authored-by: bakebot <info@networktocode.com>
Co-authored-by: Jeff Kala <jeff.l.kala@gmail.com>
Co-authored-by: Jeff Kala <48843785+jeffkala@users.noreply.github.com>
* Updated remote_file_copy for EOS base class.

* Updated os_version method to use correct key for value retrieval.

* Testing SSH install_os method.

* Adding default None value for file_system

* Added maintenance mode method for Arista EOS SSH class.

* Modified EOS SSH device maintenance_mode method to return boolean val.

* Added guard to prevent creating new maint unit.

* Revised maintenance_mode method and renamed/shaped MaintMode error.

* Revised maintenance_mode for EOS SSH device.

* Fixed bug with eos_ssh_device.py's config method.

* Added change fragment.

* fix doc build and ruff linting

* fix new unittesting and testing from eapi after few new changes

* undo os_version property change for eapi and override for ssh

---------

Co-authored-by: Maximilian Francis <max.francis@networktocode.com>
Co-authored-by: Jeff Kala <48843785+jeffkala@users.noreply.github.com>
Co-authored-by: Jeff Kala <jeff.l.kala@gmail.com>
Comment thread docs/admin/release_notes/version_3.4.md Outdated
@jeffkala
jeffkala self-requested a review October 5, 2026 22:11
@jeffkala
jeffkala merged commit c90e9cf into main Oct 5, 2026
10 checks passed
@jeffkala
jeffkala deleted the release/3.4.0 branch October 5, 2026 22:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants